#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include<assert.h>
//int zheng(const void* x, const void* y)
//{
//	return (*(int*)x - *(int*)y);
//}
//void pri_s(int arr[], int sz)
//{
//	for (int i = 0; i < sz ; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//}
//int main()
//{
//	int arr[10] = { 7,8,5,6,4,2,9,1,10,3 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	qsort(arr, sz, sizeof(int), zheng);
//	pri_s(arr, sz);
//	return 0;
//}
//struct stu
//{
//	char name[20];
//	int age;
//};
//int shu(const void* x, const void* y)
//{
//	return ((struct stu*)x)->age-((struct stu*)y)->age;
//}
//int zi(const void* x, const void* y)
//{
//	return strcmp(((struct stu*)x)->name, ((struct stu*)y)->name);
//}
//
//int main()
//{
//	struct stu s[] = { {"zhangsan",18},{"wangwu",24},{"lisi",20} };
//	int sz = sizeof(s) / sizeof(s[0]);
//	qsort(s, sz, sizeof(s[0]), zi);
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%s\n", s[i].name);
//	}
//	return 0;
//}
//int shu(const char* arr)
//{
//	int flag = 0;
//	int i = 0;
//	while (arr[i])
//	{
//		flag++;
//		i++;
//	}
//	return flag;
//}
//int main()
//{
//	char arr[10] = "abcdds";
//	int t = shu(arr);
//	printf("%d", t);
//	return 0;
//}
//char* cpy(char* p1,const char* p2)
//{
//	char* p = p1;
//	assert(p1 != NULL);
//	assert(p2 != NULL);
//	while (*p1++ = *p2++)
//	{
//		;
//	}
//	return p;
//}
//int main()
//{
//	char str[10] = "ansdsakl";
//	char stu[10] = "ewu";
//	int sz = strlen(str);
//	cpy(stu, str);
//	printf("%s", stu);
//	return 0;
//}
char* cpy(char* p1, const char* p2)
{
	char* p = p1;
	assert(p1 != NULL);
	assert(p2 != NULL);
	while (*p1)
	{
		p1++;
	}
	while (*p1++ = *p2++)
	{
		;
	}
	return p;
}
int main()
{
	char str[100] = "ansdsakl";
	char stu[100] = "ewu";
	int sz = strlen(str);
	cpy(stu, str);
	printf("%s", stu);
	return 0;
}